import sys
import os

""" 
 用法：python batch_download_hmm.py hmm_profiles/lectin.pfam.list downloads

 参数：
 - hmm_profiles/lectin.pfam.list: 包含PFAM ID的文本文件，每行一个PFAM ID。
 - downloads: 下载PFAM模型的目标文件夹。

批量下载hmm profile文件， 存放在指定的文件夹

"""


# 检查是否提供了文件名作为参数
if len(sys.argv) < 3:
    print(f"用法: {sys.argv[0]} < hmm_profiles/lectin.pfam.list 文件路径> <下载目录>")
    sys.exit(1)

input_file = sys.argv[1]
download_dir = sys.argv[2]

# 确保文件存在
if not os.path.isfile(input_file):
    print(f"错误: {input_file} 文件不存在。")
    sys.exit(1)

# 确保下载目录存在
os.makedirs(download_dir, exist_ok=True)

# 逐行读取文件
with open(input_file, 'r') as file:
    for line in file:
        accession = line.strip()  # 去掉行尾换行符
        print(f"正在下载：{accession}")
        output_file = os.path.join(download_dir, f"{accession}.hmm")
        os.system(f"wget -O {output_file} https://www.ebi.ac.uk/interpro/wwwapi/entry/pfam/{accession}?annotation=hmm")
